package com.lcf.app.es.controller;

import com.lcf.app.es.model.Article;
import com.lcf.app.es.service.ArticleService;
import org.springframework.data.domain.Page;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author ChenFei
 * @date 2021/12/8
 */
@RestController
@RequestMapping("article")
public class ArticleController {

    @Resource
    private ArticleService articleService;

    @RequestMapping("save")
    public Article save() {
        Article article = new Article()
                .setTitle("中国印钞造币总公司党委委员、董事陈耀明主动投案接受审查调查")
                .setContent("中央纪委国家监委网站12月8日通报，据中央纪委国家监委驻中国人民银行纪检监察组、河北省监委消息：中国印钞造币总公司党委委员、董事陈耀明涉嫌严重违纪违法，主动投案，目前正接受纪律审查和监察调查。\n" +
                        "\n" +
                        "　　陈耀明简历\n" +
                        "\n" +
                        "　　陈耀明，男，汉族，1964年1月出生，湖南衡阳人，大学本科学历，1984年8月参加工作，1996年3月加入中国共产党。\n" +
                        "\n" +
                        "　　1984年8月至2001年8月，历任中国印钞造币总公司综合计划处干部、副主任科员、主任科员，防伪印刷公司筹备组成员，海南华森实业公司(印制公司下属企业)副总经理、总经理，上海印钞厂副厂长等职。\n" +
                        "\n" +
                        "　　2001年8月至2021年1月，任中国印钞造币总公司党委委员、副总经理。\n" +
                        "\n" +
                        "　　2021年1月至今，任中国印钞造币总公司党委委员、董事。\n" +
                        "\n" +
                        "　　（中央纪委国家监委驻中国人民银行纪检监察组、河北省纪委监")
                .setDescription("来源：央视网 | 2021年12月08日 16:06:59")
                .setReadNumber(1598);
        return articleService.save(article);
    }

    @RequestMapping("findAll")
    public Iterable<Article> findAll() {
        return articleService.findAll();
    }

    @RequestMapping("page")
    public Page<Article> page(@RequestParam("pageNum") Integer pageNum,
                              @RequestParam("pageSize") Integer pageSize) {
        return articleService.page(pageNum, pageSize);
    }

    @RequestMapping("like")
    public SearchHits<Article> like(@RequestParam("keywords") String keywords) {
        return articleService.findByKeywords(keywords);
    }

    @RequestMapping("findByContentContaining")
    public List<Article> findByContentContaining(@RequestParam("content") String content) {
        return articleService.findByContentContaining(content);
    }

    @RequestMapping("listByTitle")
    public Page<Article> listByTitle(@RequestParam("title") String title) {
        return articleService.listByTitle(title);
    }
}
